昨天建立好一個可以簡單執行 TypeScript 的環境, 但今天還不會用到 ,今天要來講講 TypeScript 中有哪些 Types
(型別)
在第一天有提到關於 TypeScript
所以 TypeScript 的型別和 JavaScript 基本上是一樣的,只是有衍伸幾種出去
在 JavaScript 中,所有 value 都有自己的 type,type 分成兩大類:
原始資料型別 JavaScript 使用者應該大部分都不陌生
御三家 string
, number
, boolean
let testString = 'test';
let testNumber = 2023;
let testBoolean = true;
// in typescript
let testString: string = 'test';
let testNumber: number = 2023;
let testBoolean: boolean = true;
常見的 null
, undefined
null
表示存在,但是「沒有東西」undefined
表示「不存在」
void
表示一個函式沒有返回值,像下面的 function 的返回型別就是 void
,調用 testVoid
不會得到任何返回值
function testVoid() {
console.log('---');
}
// in typescript
function testVoid(): void {
console.log('---');
}
而 bigInt
, symnbol
這兩個型別我則是完全沒有用過,有興趣可以看 來數數 JavaScript 的所有資料型別
物件型別 functions
, arrays
, classes
, objects
基本上除了原始資料型別都算是物件型別的
JavaScript 中熟悉的 function, array 都算是
JavaScript 類別 (Class) 產生的物件,Class new 出來的實體 Instance 也算
上面是 JavaScript 本身就有的型別,也有一些是 TypeScript 才有的型別或是比較少用的如:
any
, 遇事不決先用 any ,用來表達任意類型的型別,用之後 TypeScript 就不會檢查它的型別了,後面會提到不要濫用它
enum
,枚舉,用來表示一組命名的常數
never
用來表示永遠不會發生的值,目前沒有用過,看起來是用在無窮系列函式的回傳
tuple
,元組,不是 TypeScript 獨有的,只是我目前用到的次數不多所以放在這,這代表知道長度、且知道裡面每個參數的型別的 Array,我理解是加強版的龜毛陣列,長度、參數的型別順序都是固定的
等等等等
經過兩天的颱風,今天上班途中看到路旁的幾棵老樹居然被連根拔起
就覺得台灣的路樹規劃真的好虐待植物,只給植物一點點方格空間放土、旁邊直接灌水泥,多出來的樹根直接把它鋸掉不讓他長,抓地不夠難怪遇到颱風的時候會垮掉,但好像也是選了不適合的樹當做行道樹的關係,也算是歷史共業 ...
安息吧樹樹